/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.Future;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Save
 */
@Entity
@Table(name = "auktion")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Auktion.findAll", query = "SELECT a FROM Auktion a"),
    @NamedQuery(name = "Auktion.findByArtikelid", query = "SELECT a FROM Auktion a WHERE a.artikelid = :artikelid"),
    @NamedQuery(name = "Auktion.findByArtikelKategorie", query = "SELECT a FROM Auktion a WHERE a.artikelKategorie = :artikelKategorie"),
    @NamedQuery(name = "Auktion.findByArtikelbeschreibung", query = "SELECT a FROM Auktion a WHERE a.artikelbeschreibung = :artikelbeschreibung"),
    @NamedQuery(name = "Auktion.findByAuktionsende", query = "SELECT a FROM Auktion a WHERE a.auktionsende = :auktionsende"),
    @NamedQuery(name = "Auktion.findByArtikelbild", query = "SELECT a FROM Auktion a WHERE a.artikelbild = :artikelbild")})
public class Auktion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "Artikel_id")
    private Integer artikelid;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 45)
    @Column(name = "Artikel_Kategorie")
    private String artikelKategorie;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 1000)
    @Column(name = "Artikelbeschreibung")
    private String artikelbeschreibung;
    @Basic(optional = false)
    @NotNull
    @Column(name = "Auktionsende")
    @Temporal(TemporalType.DATE)
    @Future
    private Date auktionsende;
    @Size(max = 45)
    @Column(name = "Artikelbild")
    private String artikelbild;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "artikelid")
    private Collection<Gebot> gebotCollection;

    public Auktion() {
    }

    public Auktion(Integer artikelid) {
        this.artikelid = artikelid;
    }

    public Auktion(Integer artikelid, String artikelKategorie, String artikelbeschreibung, Date auktionsende) {
        this.artikelid = artikelid;
        this.artikelKategorie = artikelKategorie;
        this.artikelbeschreibung = artikelbeschreibung;
        this.auktionsende = auktionsende;
    }

    public Integer getArtikelid() {
        return artikelid;
    }

    public void setArtikelid(Integer artikelid) {
        this.artikelid = artikelid;
    }

    public String getArtikelKategorie() {
        return artikelKategorie;
    }

    public void setArtikelKategorie(String artikelKategorie) {
        this.artikelKategorie = artikelKategorie;
    }

    public String getArtikelbeschreibung() {
        return artikelbeschreibung;
    }

    public void setArtikelbeschreibung(String artikelbeschreibung) {
        this.artikelbeschreibung = artikelbeschreibung;
    }

    public Date getAuktionsende() {
        return auktionsende;
    }

    public void setAuktionsende(Date auktionsende) {
        this.auktionsende = auktionsende;
    }

    public String getArtikelbild() {
        return artikelbild;
    }

    public void setArtikelbild(String artikelbild) {
        this.artikelbild = artikelbild;
    }

    @XmlTransient
    public Collection<Gebot> getGebotCollection() {
        return gebotCollection;
    }

    public void setGebotCollection(Collection<Gebot> gebotCollection) {
        this.gebotCollection = gebotCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (artikelid != null ? artikelid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Auktion)) {
            return false;
        }
        Auktion other = (Auktion) object;
        if ((this.artikelid == null && other.artikelid != null) || (this.artikelid != null && !this.artikelid.equals(other.artikelid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "beans.Auktion[ artikelid=" + artikelid + " ]";
    }
    
}
